<!DOCTYPE html>
<html>

<head>
	<meta charset="UTF-8">
	<title></title>
</head>

<body>
	<script type="text/javascript">
		/*
		 * 1.创建一个新数组,把原数组中的第一个元素插入到新数组中
		 * 2.遍历原数组中的每一个元素分别和新数组中的每一个元素进行比较
		 */
		// //原数组
		// var arr = [8,11,20,5,20,8,0,2,4,0,8];
		// // 新数组
		// var  t = [];//var  t = [8,11];
		// t[0] = arr[0];
		// //arr中的每个元素
		// for(var i=0;i<arr.length;i++){
		// 	//t中的每个元素
		// 	for(var k = 0;k<t.length;k++){

		// 		//当原数组中的值和新数组中的值相同的时候,就没有必要再继续比较了,跳出内循环
		// 		if(t[k] == arr[i]){
		// 			break;
		// 		}
		// 		//拿原数组中的某个元素比较到新数组中的最后一个元素还没有重复
		// 		if(k == t.length-1){
		// 			//将数据插入新数组
		// 			t.push(arr[i]);
		// 		}
		// 	}
		// }
		// console.log(t);

		//第二种方法
		const set = new Set([8, 11, 20, 5, 20, 8, 0, 2, 4, 0, 8]);
		console.log(Array.from(set));
		//或者
		console.log([...set]);

		//以对象为元素的数组去重
		//有	[{id:123,name:'张三'},{id:124,name:'李四'},{id:123,name:'张三'}]
		//去重后 [{id:123,name:'张三'},{id:124,name:'李四'}]
		var arr = [
			{
				id: 1,
				name: '张三'
			},
			{
				id: 1,
				name: '张三'
			},
			{
				id: 2,
				name: '李四'
			}
		]

		//新数组中是否已经有还有对应id的元素，如果没有返回true，反之返回false
		notHas = (arr, id) => {
			var narr = arr.filter((item) => {
				return item.id == id;
			});
			return narr.length == 0 ? true : false;
		};

		var newArr = [];
		for (let i = 0; i < arr.length; i++) {
			//如果新数组中没有，则添加
			if (notHas(newArr, arr[i].id)) {
				newArr.push(arr[i]);
			}
		}
		console.log(newArr);
	</script>
</body>

</html>